// 国际化包
import { createI18n } from 'vue-i18n';
// 默认展示语言
import { GLOBAL_I18N } from '@/constants/config';
import { sessionCryptoCache } from '@/utils/cryptoCache';
// 中文包
import zhcnLocale from 'element-plus/lib/locale/lang/zh-cn';
// 英文包
import enLocale from 'element-plus/lib/locale/lang/en';

// 国际化内容
import nextZhcn from './lang/zh-cn';
import nextEn from './lang/en';

// 订制语言国际化内容
const messages = {
	[zhcnLocale.name]: {
		...zhcnLocale,
		...nextZhcn,
	},
	[enLocale.name]: {
		...enLocale,
		...nextEn,
	},
};

// 获取默认语言
const getLocaleData = JSON.parse(sessionCryptoCache.getItem('themeConfig')!);

// 导出语言国际化包
export const i18n = createI18n({
	// 设置展现语言
	locale: getLocaleData?.themeConfig?.globalI18n || GLOBAL_I18N,
	// 备用语言
	fallbackLocale: zhcnLocale.name,
	// 禁止显示第一条警告
	silentTranslationWarn: true,
	missingWarn: false,
	// 禁止显示第二条警告
	silentFallbackWarn: true,
	fallbackWarn: false,
	// 全局模式，可以直接使用 $t
	globalInjection: true,
	// 使用 Composition API 模式，则需要将其设置为false
	legacy: false,
	// 语言包
	messages,
});
